package deleteGreatestValue;

import java.util.Arrays;
import java.util.List;
import java.util.PriorityQueue;

public class Solution {
    public int deleteGreatestValue(int[][] grid) {
//        for (int i = 0; i < grid.length; i++) {
//            Arrays.sort(grid[i]);
//        }
//        // 把每一列的最大值相加
//        int ans = 0;
//        for (int j = 0; j < grid[0].length; j++) {
//            int max = 0;
//            for (int i = 0; i < grid.length; i++) {
//                max = Math.max(max,grid[i][j]);
//            }
//            ans+=max;
//        }
//        return ans;
        int m = grid.length;
        PriorityQueue<Integer>[] dques = new PriorityQueue[m];
        for (int i = 0; i < grid.length; i++) {
            dques[i] = new PriorityQueue<>();
            for (int j = 0; j < grid[0].length; j++) {
                dques[i].add(grid[i][j]);
            }
        }
        int ans = 0;
        for (int i = 0; i < grid[0].length; i++) {
            int max = 0;
            for (int j = 0; j < dques.length; j++) {
                max = Math.max(dques[j].poll(),max);
            }
            ans+=max;
        }
        return ans;
    }
}
